package suanfa.paixu;

import java.util.Arrays;
////11.给你一个数组，希望排序速度最快，可以怎样写程序？
public class Quicksort {
    public static void quicksort(int[] arr,int low,int high){
        if(low<high){
            int p=arr[low];
            int i=low;
            int j=high;
            while(i<j){
                while(i<j&&arr[j]>=p){
                    j--;
                }
                swap(arr,i,j);
                while(i<j&&arr[i]<=p){
                    i++;
                }
                swap(arr,i,j);
            }
            quicksort(arr,low,j-1);
            quicksort(arr,low,j-1);
            quicksort(arr,j+1,high);
        }
    }

    public static void swap(int[] arr,int i,int j){
        int t=arr[i];
        arr[i]=arr[j];
        arr[j]=t;
    }

    public static void main(String[] args) {
        int[] arr={67,70,21,13,90,87,50};
        quicksort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }
}
